/**
 * QtAwesome - use font-awesome (or other font icons) in your c++ / Qt Application
 *
 * MIT Licensed
 *
 * Copyright 2013-2015 - Reliable Bits Software by Blommers IT. All Rights Reserved.
 * Author Rick Blommers
 */

#ifndef QTAWESOME_H
#define QTAWESOME_H

#include "QtAwesomeAnim.h"

#include <QIcon>
#include <QIconEngine>
#include <QPainter>
#include <QRect>
#include <QVariantMap>


/// A list of all icon-names with the codepoint (unicode-value) on the right
/// You can use the names on the page  http://fortawesome.github.io/Font-Awesome/design.html
namespace fa {
enum icon
{
    fa_500px                         = 0xf26e,
    addressbook                      = 0xf2b9,
    addressbooko                     = 0xf2ba,
    addresscard                      = 0xf2bb,
    addresscardo                     = 0xf2bc,
    adjust                           = 0xf042,
    adn                              = 0xf170,
    aligncenter                      = 0xf037,
    alignjustify                     = 0xf039,
    alignleft                        = 0xf036,
    alignright                       = 0xf038,
    amazon                           = 0xf270,
    ambulance                        = 0xf0f9,
    americansignlanguageinterpreting = 0xf2a3,
    anchor                           = 0xf13d,
    android                          = 0xf17b,
    angellist                        = 0xf209,
    angledoubledown                  = 0xf103,
    angledoubleleft                  = 0xf100,
    angledoubleright                 = 0xf101,
    angledoubleup                    = 0xf102,
    angledown                        = 0xf107,
    angleleft                        = 0xf104,
    angleright                       = 0xf105,
    angleup                          = 0xf106,
    apple                            = 0xf179,
    archive                          = 0xf187,
    areachart                        = 0xf1fe,
    arrowcircledown                  = 0xf0ab,
    arrowcircleleft                  = 0xf0a8,
    arrowcircleodown                 = 0xf01a,
    arrowcircleoleft                 = 0xf190,
    arrowcircleoright                = 0xf18e,
    arrowcircleoup                   = 0xf01b,
    arrowcircleright                 = 0xf0a9,
    arrowcircleup                    = 0xf0aa,
    arrowdown                        = 0xf063,
    arrowleft                        = 0xf060,
    arrowright                       = 0xf061,
    arrowup                          = 0xf062,
    arrows                           = 0xf047,
    arrowsalt                        = 0xf0b2,
    arrowsh                          = 0xf07e,
    arrowsv                          = 0xf07d,
    aslinterpreting                  = 0xf2a3,
    assistivelisteningsystems        = 0xf2a2,
    asterisk                         = 0xf069,
    at                               = 0xf1fa,
    audiodescription                 = 0xf29e,
    automobile                       = 0xf1b9,
    backward                         = 0xf04a,
    balancescale                     = 0xf24e,
    ban                              = 0xf05e,
    bandcamp                         = 0xf2d5,
    bank                             = 0xf19c,
    barchart                         = 0xf080,
    barcharto                        = 0xf080,
    barcode                          = 0xf02a,
    bars                             = 0xf0c9,
    bath                             = 0xf2cd,
    bathtub                          = 0xf2cd,
    battery                          = 0xf240,
    battery0                         = 0xf244,
    battery1                         = 0xf243,
    battery2                         = 0xf242,
    battery3                         = 0xf241,
    battery4                         = 0xf240,
    batteryempty                     = 0xf244,
    batteryfull                      = 0xf240,
    batteryhalf                      = 0xf242,
    batteryquarter                   = 0xf243,
    batterythreequarters             = 0xf241,
    bed                              = 0xf236,
    beer                             = 0xf0fc,
    behance                          = 0xf1b4,
    behancesquare                    = 0xf1b5,
    bell                             = 0xf0f3,
    bello                            = 0xf0a2,
    bellslash                        = 0xf1f6,
    bellslasho                       = 0xf1f7,
    bicycle                          = 0xf206,
    binoculars                       = 0xf1e5,
    birthdaycake                     = 0xf1fd,
    bitbucket                        = 0xf171,
    bitbucketsquare                  = 0xf172,
    bitcoin                          = 0xf15a,
    blacktie                         = 0xf27e,
    blind                            = 0xf29d,
    bluetooth                        = 0xf293,
    bluetoothb                       = 0xf294,
    bold                             = 0xf032,
    bolt                             = 0xf0e7,
    bomb                             = 0xf1e2,
    book                             = 0xf02d,
    bookmark                         = 0xf02e,
    bookmarko                        = 0xf097,
    braille                          = 0xf2a1,
    briefcase                        = 0xf0b1,
    btc                              = 0xf15a,
    bug                              = 0xf188,
    building                         = 0xf1ad,
    buildingo                        = 0xf0f7,
    bullhorn                         = 0xf0a1,
    bullseye                         = 0xf140,
    bus                              = 0xf207,
    buysellads                       = 0xf20d,
    cab                              = 0xf1ba,
    calculator                       = 0xf1ec,
    calendar                         = 0xf073,
    calendarchecko                   = 0xf274,
    calendarminuso                   = 0xf272,
    calendaro                        = 0xf133,
    calendarpluso                    = 0xf271,
    calendartimeso                   = 0xf273,
    camera                           = 0xf030,
    cameraretro                      = 0xf083,
    car                              = 0xf1b9,
    caretdown                        = 0xf0d7,
    caretleft                        = 0xf0d9,
    caretright                       = 0xf0da,
    caretsquareodown                 = 0xf150,
    caretsquareoleft                 = 0xf191,
    caretsquareoright                = 0xf152,
    caretsquareoup                   = 0xf151,
    caretup                          = 0xf0d8,
    cartarrowdown                    = 0xf218,
    cartplus                         = 0xf217,
    cc                               = 0xf20a,
    ccamex                           = 0xf1f3,
    ccdinersclub                     = 0xf24c,
    ccdiscover                       = 0xf1f2,
    ccjcb                            = 0xf24b,
    ccmastercard                     = 0xf1f1,
    ccpaypal                         = 0xf1f4,
    ccstripe                         = 0xf1f5,
    ccvisa                           = 0xf1f0,
    certificate                      = 0xf0a3,
    chain                            = 0xf0c1,
    chainbroken                      = 0xf127,
    check                            = 0xf00c,
    checkcircle                      = 0xf058,
    checkcircleo                     = 0xf05d,
    checksquare                      = 0xf14a,
    checksquareo                     = 0xf046,
    chevroncircledown                = 0xf13a,
    chevroncircleleft                = 0xf137,
    chevroncircleright               = 0xf138,
    chevroncircleup                  = 0xf139,
    chevrondown                      = 0xf078,
    chevronleft                      = 0xf053,
    chevronright                     = 0xf054,
    chevronup                        = 0xf077,
    child                            = 0xf1ae,
    chrome                           = 0xf268,
    circle                           = 0xf111,
    circleo                          = 0xf10c,
    circleonotch                     = 0xf1ce,
    circlethin                       = 0xf1db,
    clipboard                        = 0xf0ea,
    clocko                           = 0xf017,
    clone                            = 0xf24d,
    close                            = 0xf00d,
    cloud                            = 0xf0c2,
    clouddownload                    = 0xf0ed,
    cloudupload                      = 0xf0ee,
    cny                              = 0xf157,
    code                             = 0xf121,
    codefork                         = 0xf126,
    codepen                          = 0xf1cb,
    codiepie                         = 0xf284,
    coffee                           = 0xf0f4,
    cog                              = 0xf013,
    cogs                             = 0xf085,
    columns                          = 0xf0db,
    comment                          = 0xf075,
    commento                         = 0xf0e5,
    commenting                       = 0xf27a,
    commentingo                      = 0xf27b,
    comments                         = 0xf086,
    commentso                        = 0xf0e6,
    compass                          = 0xf14e,
    compress                         = 0xf066,
    connectdevelop                   = 0xf20e,
    contao                           = 0xf26d,
    copy                             = 0xf0c5,
    copyright                        = 0xf1f9,
    creativecommons                  = 0xf25e,
    creditcard                       = 0xf09d,
    creditcardalt                    = 0xf283,
    crop                             = 0xf125,
    crosshairs                       = 0xf05b,
    css3                             = 0xf13c,
    cube                             = 0xf1b2,
    cubes                            = 0xf1b3,
    cut                              = 0xf0c4,
    cutlery                          = 0xf0f5,
    dashboard                        = 0xf0e4,
    dashcube                         = 0xf210,
    database                         = 0xf1c0,
    deaf                             = 0xf2a4,
    deafness                         = 0xf2a4,
    dedent                           = 0xf03b,
    delicious                        = 0xf1a5,
    desktop                          = 0xf108,
    deviantart                       = 0xf1bd,
    diamond                          = 0xf219,
    digg                             = 0xf1a6,
    dollar                           = 0xf155,
    dotcircleo                       = 0xf192,
    download                         = 0xf019,
    dribbble                         = 0xf17d,
    driverslicense                   = 0xf2c2,
    driverslicenseo                  = 0xf2c3,
    dropbox                          = 0xf16b,
    drupal                           = 0xf1a9,
    edge                             = 0xf282,
    edit                             = 0xf044,
    eercast                          = 0xf2da,
    eject                            = 0xf052,
    ellipsish                        = 0xf141,
    ellipsisv                        = 0xf142,
    empire                           = 0xf1d1,
    envelope                         = 0xf0e0,
    envelopeo                        = 0xf003,
    envelopeopen                     = 0xf2b6,
    envelopeopeno                    = 0xf2b7,
    envelopesquare                   = 0xf199,
    envira                           = 0xf299,
    eraser                           = 0xf12d,
    etsy                             = 0xf2d7,
    eur                              = 0xf153,
    euro                             = 0xf153,
    exchange                         = 0xf0ec,
    exclamation                      = 0xf12a,
    exclamationcircle                = 0xf06a,
    exclamationtriangle              = 0xf071,
    expand                           = 0xf065,
    expeditedssl                     = 0xf23e,
    externallink                     = 0xf08e,
    externallinksquare               = 0xf14c,
    eye                              = 0xf06e,
    eyeslash                         = 0xf070,
    eyedropper                       = 0xf1fb,
    fa                               = 0xf2b4,
    facebook                         = 0xf09a,
    facebookf                        = 0xf09a,
    facebookofficial                 = 0xf230,
    facebooksquare                   = 0xf082,
    fastbackward                     = 0xf049,
    fastforward                      = 0xf050,
    fax                              = 0xf1ac,
    feed                             = 0xf09e,
    female                           = 0xf182,
    fighterjet                       = 0xf0fb,
    file                             = 0xf15b,
    filearchiveo                     = 0xf1c6,
    fileaudioo                       = 0xf1c7,
    filecodeo                        = 0xf1c9,
    fileexcelo                       = 0xf1c3,
    fileimageo                       = 0xf1c5,
    filemovieo                       = 0xf1c8,
    fileo                            = 0xf016,
    filepdfo                         = 0xf1c1,
    filephotoo                       = 0xf1c5,
    filepictureo                     = 0xf1c5,
    filepowerpointo                  = 0xf1c4,
    filesoundo                       = 0xf1c7,
    filetext                         = 0xf15c,
    filetexto                        = 0xf0f6,
    filevideoo                       = 0xf1c8,
    filewordo                        = 0xf1c2,
    filezipo                         = 0xf1c6,
    fileso                           = 0xf0c5,
    film                             = 0xf008,
    filter                           = 0xf0b0,
    fire                             = 0xf06d,
    fireextinguisher                 = 0xf134,
    firefox                          = 0xf269,
    firstorder                       = 0xf2b0,
    flag                             = 0xf024,
    flagcheckered                    = 0xf11e,
    flago                            = 0xf11d,
    flash                            = 0xf0e7,
    flask                            = 0xf0c3,
    flickr                           = 0xf16e,
    floppyo                          = 0xf0c7,
    folder                           = 0xf07b,
    foldero                          = 0xf114,
    folderopen                       = 0xf07c,
    folderopeno                      = 0xf115,
    font                             = 0xf031,
    fontawesome                      = 0xf2b4,
    fonticons                        = 0xf280,
    fortawesome                      = 0xf286,
    forumbee                         = 0xf211,
    forward                          = 0xf04e,
    foursquare                       = 0xf180,
    freecodecamp                     = 0xf2c5,
    frowno                           = 0xf119,
    futbolo                          = 0xf1e3,
    gamepad                          = 0xf11b,
    gavel                            = 0xf0e3,
    gbp                              = 0xf154,
    ge                               = 0xf1d1,
    gear                             = 0xf013,
    gears                            = 0xf085,
    genderless                       = 0xf22d,
    getpocket                        = 0xf265,
    gg                               = 0xf260,
    ggcircle                         = 0xf261,
    gift                             = 0xf06b,
    git                              = 0xf1d3,
    gitsquare                        = 0xf1d2,
    github                           = 0xf09b,
    githubalt                        = 0xf113,
    githubsquare                     = 0xf092,
    gitlab                           = 0xf296,
    gittip                           = 0xf184,
    glass                            = 0xf000,
    glide                            = 0xf2a5,
    glideg                           = 0xf2a6,
    globe                            = 0xf0ac,
    google                           = 0xf1a0,
    googleplus                       = 0xf0d5,
    googlepluscircle                 = 0xf2b3,
    googleplusofficial               = 0xf2b3,
    googleplussquare                 = 0xf0d4,
    googlewallet                     = 0xf1ee,
    graduationcap                    = 0xf19d,
    gratipay                         = 0xf184,
    grav                             = 0xf2d6,
    group                            = 0xf0c0,
    hsquare                          = 0xf0fd,
    hackernews                       = 0xf1d4,
    handgrabo                        = 0xf255,
    handlizardo                      = 0xf258,
    handodown                        = 0xf0a7,
    handoleft                        = 0xf0a5,
    handoright                       = 0xf0a4,
    handoup                          = 0xf0a6,
    handpapero                       = 0xf256,
    handpeaceo                       = 0xf25b,
    handpointero                     = 0xf25a,
    handrocko                        = 0xf255,
    handscissorso                    = 0xf257,
    handspocko                       = 0xf259,
    handstopo                        = 0xf256,
    handshakeo                       = 0xf2b5,
    hardofhearing                    = 0xf2a4,
    hashtag                          = 0xf292,
    hddo                             = 0xf0a0,
    header                           = 0xf1dc,
    headphones                       = 0xf025,
    heart                            = 0xf004,
    hearto                           = 0xf08a,
    heartbeat                        = 0xf21e,
    history                          = 0xf1da,
    home                             = 0xf015,
    hospitalo                        = 0xf0f8,
    hotel                            = 0xf236,
    hourglass                        = 0xf254,
    hourglass1                       = 0xf251,
    hourglass2                       = 0xf252,
    hourglass3                       = 0xf253,
    hourglassend                     = 0xf253,
    hourglasshalf                    = 0xf252,
    hourglasso                       = 0xf250,
    hourglassstart                   = 0xf251,
    houzz                            = 0xf27c,
    html5                            = 0xf13b,
    icursor                          = 0xf246,
    idbadge                          = 0xf2c1,
    idcard                           = 0xf2c2,
    idcardo                          = 0xf2c3,
    ils                              = 0xf20b,
    image                            = 0xf03e,
    imdb                             = 0xf2d8,
    inbox                            = 0xf01c,
    indent                           = 0xf03c,
    industry                         = 0xf275,
    info                             = 0xf129,
    infocircle                       = 0xf05a,
    inr                              = 0xf156,
    instagram                        = 0xf16d,
    institution                      = 0xf19c,
    internetexplorer                 = 0xf26b,
    intersex                         = 0xf224,
    ioxhost                          = 0xf208,
    italic                           = 0xf033,
    joomla                           = 0xf1aa,
    jpy                              = 0xf157,
    jsfiddle                         = 0xf1cc,
    key                              = 0xf084,
    keyboardo                        = 0xf11c,
    krw                              = 0xf159,
    language                         = 0xf1ab,
    laptop                           = 0xf109,
    lastfm                           = 0xf202,
    lastfmsquare                     = 0xf203,
    leaf                             = 0xf06c,
    leanpub                          = 0xf212,
    legal                            = 0xf0e3,
    lemono                           = 0xf094,
    leveldown                        = 0xf149,
    levelup                          = 0xf148,
    lifebouy                         = 0xf1cd,
    lifebuoy                         = 0xf1cd,
    lifering                         = 0xf1cd,
    lifesaver                        = 0xf1cd,
    lightbulbo                       = 0xf0eb,
    linechart                        = 0xf201,
    link                             = 0xf0c1,
    linkedin                         = 0xf0e1,
    linkedinsquare                   = 0xf08c,
    linode                           = 0xf2b8,
    fa_linux                         = 0xf17c,
    list                             = 0xf03a,
    listalt                          = 0xf022,
    listol                           = 0xf0cb,
    listul                           = 0xf0ca,
    locationarrow                    = 0xf124,
    lock                             = 0xf023,
    longarrowdown                    = 0xf175,
    longarrowleft                    = 0xf177,
    longarrowright                   = 0xf178,
    longarrowup                      = 0xf176,
    lowvision                        = 0xf2a8,
    magic                            = 0xf0d0,
    magnet                           = 0xf076,
    mailforward                      = 0xf064,
    mailreply                        = 0xf112,
    mailreplyall                     = 0xf122,
    male                             = 0xf183,
    map                              = 0xf279,
    mapmarker                        = 0xf041,
    mapo                             = 0xf278,
    mappin                           = 0xf276,
    mapsigns                         = 0xf277,
    mars                             = 0xf222,
    marsdouble                       = 0xf227,
    marsstroke                       = 0xf229,
    marsstrokeh                      = 0xf22b,
    marsstrokev                      = 0xf22a,
    maxcdn                           = 0xf136,
    meanpath                         = 0xf20c,
    medium                           = 0xf23a,
    medkit                           = 0xf0fa,
    meetup                           = 0xf2e0,
    meho                             = 0xf11a,
    mercury                          = 0xf223,
    microchip                        = 0xf2db,
    microphone                       = 0xf130,
    microphoneslash                  = 0xf131,
    minus                            = 0xf068,
    minuscircle                      = 0xf056,
    minussquare                      = 0xf146,
    minussquareo                     = 0xf147,
    mixcloud                         = 0xf289,
    mobile                           = 0xf10b,
    mobilephone                      = 0xf10b,
    modx                             = 0xf285,
    money                            = 0xf0d6,
    moono                            = 0xf186,
    mortarboard                      = 0xf19d,
    motorcycle                       = 0xf21c,
    mousepointer                     = 0xf245,
    music                            = 0xf001,
    navicon                          = 0xf0c9,
    neuter                           = 0xf22c,
    newspapero                       = 0xf1ea,
    objectgroup                      = 0xf247,
    objectungroup                    = 0xf248,
    odnoklassniki                    = 0xf263,
    odnoklassnikisquare              = 0xf264,
    opencart                         = 0xf23d,
    openid                           = 0xf19b,
    opera                            = 0xf26a,
    optinmonster                     = 0xf23c,
    outdent                          = 0xf03b,
    pagelines                        = 0xf18c,
    paintbrush                       = 0xf1fc,
    paperplane                       = 0xf1d8,
    paperplaneo                      = 0xf1d9,
    paperclip                        = 0xf0c6,
    paragraph                        = 0xf1dd,
    paste                            = 0xf0ea,
    pause                            = 0xf04c,
    pausecircle                      = 0xf28b,
    pausecircleo                     = 0xf28c,
    paw                              = 0xf1b0,
    paypal                           = 0xf1ed,
    pencil                           = 0xf040,
    pencilsquare                     = 0xf14b,
    pencilsquareo                    = 0xf044,
    percent                          = 0xf295,
    phone                            = 0xf095,
    phonesquare                      = 0xf098,
    photo                            = 0xf03e,
    pictureo                         = 0xf03e,
    piechart                         = 0xf200,
    piedpiper                        = 0xf2ae,
    piedpiperalt                     = 0xf1a8,
    piedpiperpp                      = 0xf1a7,
    pinterest                        = 0xf0d2,
    pinterestp                       = 0xf231,
    pinterestsquare                  = 0xf0d3,
    plane                            = 0xf072,
    play                             = 0xf04b,
    playcircle                       = 0xf144,
    playcircleo                      = 0xf01d,
    plug                             = 0xf1e6,
    plus                             = 0xf067,
    pluscircle                       = 0xf055,
    plussquare                       = 0xf0fe,
    plussquareo                      = 0xf196,
    podcast                          = 0xf2ce,
    poweroff                         = 0xf011,
    print                            = 0xf02f,
    producthunt                      = 0xf288,
    puzzlepiece                      = 0xf12e,
    qq                               = 0xf1d6,
    qrcode                           = 0xf029,
    question                         = 0xf128,
    questioncircle                   = 0xf059,
    questioncircleo                  = 0xf29c,
    quora                            = 0xf2c4,
    quoteleft                        = 0xf10d,
    quoteright                       = 0xf10e,
    ra                               = 0xf1d0,
    random                           = 0xf074,
    ravelry                          = 0xf2d9,
    rebel                            = 0xf1d0,
    recycle                          = 0xf1b8,
    reddit                           = 0xf1a1,
    redditalien                      = 0xf281,
    redditsquare                     = 0xf1a2,
    refresh                          = 0xf021,
    registered                       = 0xf25d,
    remove                           = 0xf00d,
    renren                           = 0xf18b,
    reorder                          = 0xf0c9,
    repeat                           = 0xf01e,
    reply                            = 0xf112,
    replyall                         = 0xf122,
    resistance                       = 0xf1d0,
    retweet                          = 0xf079,
    rmb                              = 0xf157,
    road                             = 0xf018,
    rocket                           = 0xf135,
    rotateleft                       = 0xf0e2,
    rotateright                      = 0xf01e,
    rouble                           = 0xf158,
    rss                              = 0xf09e,
    rsssquare                        = 0xf143,
    rub                              = 0xf158,
    ruble                            = 0xf158,
    rupee                            = 0xf156,
    s15                              = 0xf2cd,
    safari                           = 0xf267,
    save                             = 0xf0c7,
    scissors                         = 0xf0c4,
    scribd                           = 0xf28a,
    search                           = 0xf002,
    searchminus                      = 0xf010,
    searchplus                       = 0xf00e,
    sellsy                           = 0xf213,
    send                             = 0xf1d8,
    sendo                            = 0xf1d9,
    server                           = 0xf233,
    share                            = 0xf064,
    sharealt                         = 0xf1e0,
    sharealtsquare                   = 0xf1e1,
    sharesquare                      = 0xf14d,
    sharesquareo                     = 0xf045,
    shekel                           = 0xf20b,
    sheqel                           = 0xf20b,
    shield                           = 0xf132,
    ship                             = 0xf21a,
    shirtsinbulk                     = 0xf214,
    shoppingbag                      = 0xf290,
    shoppingbasket                   = 0xf291,
    shoppingcart                     = 0xf07a,
    shower                           = 0xf2cc,
    signin                           = 0xf090,
    signlanguage                     = 0xf2a7,
    signout                          = 0xf08b,
    signal                           = 0xf012,
    signing                          = 0xf2a7,
    simplybuilt                      = 0xf215,
    sitemap                          = 0xf0e8,
    skyatlas                         = 0xf216,
    skype                            = 0xf17e,
    slack                            = 0xf198,
    sliders                          = 0xf1de,
    slideshare                       = 0xf1e7,
    smileo                           = 0xf118,
    snapchat                         = 0xf2ab,
    snapchatghost                    = 0xf2ac,
    snapchatsquare                   = 0xf2ad,
    snowflakeo                       = 0xf2dc,
    soccerballo                      = 0xf1e3,
    sort                             = 0xf0dc,
    sortalphaasc                     = 0xf15d,
    sortalphadesc                    = 0xf15e,
    sortamountasc                    = 0xf160,
    sortamountdesc                   = 0xf161,
    sortasc                          = 0xf0de,
    sortdesc                         = 0xf0dd,
    sortdown                         = 0xf0dd,
    sortnumericasc                   = 0xf162,
    sortnumericdesc                  = 0xf163,
    sortup                           = 0xf0de,
    soundcloud                       = 0xf1be,
    spaceshuttle                     = 0xf197,
    spinner                          = 0xf110,
    spoon                            = 0xf1b1,
    spotify                          = 0xf1bc,
    square                           = 0xf0c8,
    squareo                          = 0xf096,
    stackexchange                    = 0xf18d,
    stackoverflow                    = 0xf16c,
    star                             = 0xf005,
    starhalf                         = 0xf089,
    starhalfempty                    = 0xf123,
    starhalffull                     = 0xf123,
    starhalfo                        = 0xf123,
    staro                            = 0xf006,
    steam                            = 0xf1b6,
    steamsquare                      = 0xf1b7,
    stepbackward                     = 0xf048,
    stepforward                      = 0xf051,
    stethoscope                      = 0xf0f1,
    stickynote                       = 0xf249,
    stickynoteo                      = 0xf24a,
    stop                             = 0xf04d,
    stopcircle                       = 0xf28d,
    stopcircleo                      = 0xf28e,
    streetview                       = 0xf21d,
    strikethrough                    = 0xf0cc,
    stumbleupon                      = 0xf1a4,
    stumbleuponcircle                = 0xf1a3,
    subscript                        = 0xf12c,
    subway                           = 0xf239,
    suitcase                         = 0xf0f2,
    suno                             = 0xf185,
    superpowers                      = 0xf2dd,
    superscript                      = 0xf12b,
    support                          = 0xf1cd,
    table                            = 0xf0ce,
    tablet                           = 0xf10a,
    tachometer                       = 0xf0e4,
    tag                              = 0xf02b,
    tags                             = 0xf02c,
    tasks                            = 0xf0ae,
    taxi                             = 0xf1ba,
    telegram                         = 0xf2c6,
    television                       = 0xf26c,
    tencentweibo                     = 0xf1d5,
    terminal                         = 0xf120,
    textheight                       = 0xf034,
    textwidth                        = 0xf035,
    th                               = 0xf00a,
    thlarge                          = 0xf009,
    thlist                           = 0xf00b,
    themeisle                        = 0xf2b2,
    thermometer                      = 0xf2c7,
    thermometer0                     = 0xf2cb,
    thermometer1                     = 0xf2ca,
    thermometer2                     = 0xf2c9,
    thermometer3                     = 0xf2c8,
    thermometer4                     = 0xf2c7,
    thermometerempty                 = 0xf2cb,
    thermometerfull                  = 0xf2c7,
    thermometerhalf                  = 0xf2c9,
    thermometerquarter               = 0xf2ca,
    thermometerthreequarters         = 0xf2c8,
    thumbtack                        = 0xf08d,
    thumbsdown                       = 0xf165,
    thumbsodown                      = 0xf088,
    thumbsoup                        = 0xf087,
    thumbsup                         = 0xf164,
    ticket                           = 0xf145,
    times                            = 0xf00d,
    timescircle                      = 0xf057,
    timescircleo                     = 0xf05c,
    timesrectangle                   = 0xf2d3,
    timesrectangleo                  = 0xf2d4,
    tint                             = 0xf043,
    toggledown                       = 0xf150,
    toggleleft                       = 0xf191,
    toggleoff                        = 0xf204,
    toggleon                         = 0xf205,
    toggleright                      = 0xf152,
    toggleup                         = 0xf151,
    trademark                        = 0xf25c,
    train                            = 0xf238,
    transgender                      = 0xf224,
    transgenderalt                   = 0xf225,
    trash                            = 0xf1f8,
    trasho                           = 0xf014,
    tree                             = 0xf1bb,
    trello                           = 0xf181,
    tripadvisor                      = 0xf262,
    trophy                           = 0xf091,
    truck                            = 0xf0d1,
    fa_try                           = 0xf195,
    tty                              = 0xf1e4,
    tumblr                           = 0xf173,
    tumblrsquare                     = 0xf174,
    turkishlira                      = 0xf195,
    tv                               = 0xf26c,
    twitch                           = 0xf1e8,
    twitter                          = 0xf099,
    twittersquare                    = 0xf081,
    umbrella                         = 0xf0e9,
    underline                        = 0xf0cd,
    undo                             = 0xf0e2,
    universalaccess                  = 0xf29a,
    university                       = 0xf19c,
    unlink                           = 0xf127,
    unlock                           = 0xf09c,
    unlockalt                        = 0xf13e,
    unsorted                         = 0xf0dc,
    upload                           = 0xf093,
    usb                              = 0xf287,
    usd                              = 0xf155,
    user                             = 0xf007,
    usercircle                       = 0xf2bd,
    usercircleo                      = 0xf2be,
    usermd                           = 0xf0f0,
    usero                            = 0xf2c0,
    userplus                         = 0xf234,
    usersecret                       = 0xf21b,
    usertimes                        = 0xf235,
    users                            = 0xf0c0,
    vcard                            = 0xf2bb,
    vcardo                           = 0xf2bc,
    venus                            = 0xf221,
    venusdouble                      = 0xf226,
    venusmars                        = 0xf228,
    viacoin                          = 0xf237,
    viadeo                           = 0xf2a9,
    viadeosquare                     = 0xf2aa,
    videocamera                      = 0xf03d,
    vimeo                            = 0xf27d,
    vimeosquare                      = 0xf194,
    vine                             = 0xf1ca,
    vk                               = 0xf189,
    volumecontrolphone               = 0xf2a0,
    volumedown                       = 0xf027,
    volumeoff                        = 0xf026,
    volumeup                         = 0xf028,
    warning                          = 0xf071,
    wechat                           = 0xf1d7,
    weibo                            = 0xf18a,
    weixin                           = 0xf1d7,
    whatsapp                         = 0xf232,
    wheelchair                       = 0xf193,
    wheelchairalt                    = 0xf29b,
    wifi                             = 0xf1eb,
    wikipediaw                       = 0xf266,
    windowclose                      = 0xf2d3,
    windowcloseo                     = 0xf2d4,
    windowmaximize                   = 0xf2d0,
    windowminimize                   = 0xf2d1,
    windowrestore                    = 0xf2d2,
    windows                          = 0xf17a,
    won                              = 0xf159,
    wordpress                        = 0xf19a,
    wpbeginner                       = 0xf297,
    wpexplorer                       = 0xf2de,
    wpforms                          = 0xf298,
    wrench                           = 0xf0ad,
    xing                             = 0xf168,
    xingsquare                       = 0xf169,
    ycombinator                      = 0xf23b,
    ycombinatorsquare                = 0xf1d4,
    yahoo                            = 0xf19e,
    yc                               = 0xf23b,
    ycsquare                         = 0xf1d4,
    yelp                             = 0xf1e9,
    yen                              = 0xf157,
    yoast                            = 0xf2b1,
    youtube                          = 0xf167,
    youtubeplay                      = 0xf16a,
    youtubesquare                    = 0xf166
};
}



//---------------------------------------------------------------------------------------

class LIBRARYSHARED_EXPORT QtAwesomeIconPainter;

/// The main class for managing icons
/// This class requires a 2-phase construction. You must first create the class and then initialize it via an init* method
class LIBRARYSHARED_EXPORT QtAwesome : public QObject
{
    Q_OBJECT

public:

    explicit QtAwesome ( QObject* parent = 0 );
    virtual ~QtAwesome();

    void init ( const QString& fontname );
    bool initFontAwesome();

    void addNamedCodepoint ( const QString& name, int codePoint );
    QHash<QString, int> namedCodePoints() { return namedCodepoints_; }

    void setDefaultOption ( const QString& name, const QVariant& value  );
    QVariant defaultOption ( const QString& name );

    QIcon icon ( int character, const QVariantMap& options = QVariantMap() );
    QIcon icon ( const QString& name, const QVariantMap& options = QVariantMap() );
    QIcon icon ( QtAwesomeIconPainter* painter, const QVariantMap& optionMap = QVariantMap() );

    void give ( const QString& name, QtAwesomeIconPainter* painter );

    QFont font ( int size );

    /// Returns the font-name that is used as icon-map
    QString fontName() { return fontName_ ; }

private:
    QString fontName_;                                     ///< The font name used for this map
    QHash<QString, int> namedCodepoints_;                  ///< A map with names mapped to code-points

    QHash<QString, QtAwesomeIconPainter*> painterMap_;     ///< A map of custom painters
    QVariantMap defaultOptions_;                           ///< The default icon options
    QtAwesomeIconPainter* fontIconPainter_;                ///< A special painter fo painting codepoints
};


//---------------------------------------------------------------------------------------


/// The QtAwesomeIconPainter is a specialized painter for painting icons
/// your can implement an iconpainter to create custom font-icon code
class LIBRARYSHARED_EXPORT QtAwesomeIconPainter
{
public:
    virtual ~QtAwesomeIconPainter() {}
    virtual void paint ( QtAwesome* awesome, QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state,
                         const QVariantMap& options ) = 0;
};

Q_DECLARE_METATYPE ( QtAwesomeAnimation* )

#endif // QTAWESOME_H
